﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace Pg.BioMedics.SDR.Entities
{
    /// <summary>
    /// Annotation entity
    /// </summary>
    [Serializable]
    [DataContract]
    public class Annotation
    {
        /// <summary>
        /// Gets unique annotation id
        /// </summary>
        [DataMember]
        public int? Id
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets id of the document annotated by this annotation
        /// </summary>
        [DataMember]
        public int DocumentId
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets annotation MPEG-7 descriptor
        /// </summary>
        [DataMember]
        public string Descriptor
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets annotation type code
        /// </summary>
        [DataMember]
        public string TypeCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets annotation content id
        /// </summary>
        [DataMember]
        public int ContentId
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets annotation language code 
        /// </summary>
        [DataMember]
        public string LanguageCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets / sets ASR task unique id (GUID)
        /// </summary>
        [DataMember]
        public Guid? AsrTaskUniqueId
        {
            get;
            set;
        }

        /// <summary>
        /// Gets the annotation current status code 
        /// </summary>
        [DataMember]
        public string StatusCode
        {
            get;
            set;
        }

        /// <summary>
        /// Gets date of last state transition of the annotation
        /// </summary>
        [DataMember]
        public DateTime? StatusDate
        {
            get;
            set;
        }
    }
}
